package com.atguigu.common.exception;

import com.atguigu.common.result.ResultCodeEnum;
import lombok.Data;

@Data
public class LeaseException extends RuntimeException{
//    这是自定义异常处理器，继承所有运行类异常的父类RuntimeException
    private Integer code;//异常状态码
//    通过状态码和错误消息创建异常对象
    public LeaseException(String message,Integer code){ //自定义异常的构造器，当你需要抛出一个包含错误信息和自定义状态码的异常时，
        // 可以通过这个构造方法创建 LeaseException 对象
        super(message);//调用父类RuntimeException的构造方法，将错误信息message传给父类
        this.code = code; //将传入的状态码code赋值给当前对象的code字段
    }

//    根据响应结果枚举对象创建异常对象
    public LeaseException(ResultCodeEnum resultCodeEnum){
//        ResultCodeEnum 是一个枚举类，用于统一管理系统中的响应状态码和错误信息。
//      例如， SUCCESS(200, "操作成功"), PARAM_ERROR(400, "参数错误"),
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
    }

    @Override
    public String toString() {
        return "LeaseException{" +
                "code=" + code +
                ", message=" + this.getMessage() +
                '}';
    }

}
